:搭建神经网络,在 mnist 数据集上训练模型,输出手写数字识别准确
率。
人工智能,机器学习
def test( mnist ): with tf.Graph( ).as_default( ) as g:
#给 x y_占位
x = tf.placeholder(dtype,shape)
y_ = tf.placeholder(dtype,shape)
10
#前向传播得到预测结果 y
y = mnist_forward.forward(x, None) #前向传播得到 y
#实例化可还原滑动平均的 saver
ema = tf.train.ExponentialMovingAverage(滑动衰减率)
ema_restore = ema.variables_to_restore() saver = tf.train.Saver(ema_restore) #计算正确率 correct_prediction = tf.equal(tf.argmax(y,1),tf.argmax(y_, 1)) accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) while True: with tf.Session() as sess: #加载训练好的模型 ckpt = tf.train.get_checkpoint_state(存储路径) #如果已有 ckpt 模型则恢复 if ckpt and ckpt.model_checkpoint_path: #恢复会话 saver.restore(sess, ckpt.model_checkpoint_path) #恢复轮数 global_ste = ckpt.model_checkpoint_path.split ('/')[-1].split('-')[-1] #计算准确率 accuracy_score = sess.run(accuracy, feed_dict= {x:测试数据, y_:测试数据标签 }) # 打印提示 print("After %s training step(s), test accuracy= %g" % (global_step, accuracy_score)) #如果没有模型 else: print('No checkpoint file found') #模型不存在提示 return 其次,制定 main()函数 def main(): #加载测试数据集 mnist = input_data.read_data_sets("./data/", one_hot=True) #调用定义好的测试函数 test()
11
test(mnist) if __name__ == '__main__': main()
通
评论